package collection;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Random;
/**
 *  终端操作:
 *  min:获取流中的最小值
 *  max:获取流中的最大值
 *  anyMatch:进行流中的元素任意匹配，只要有一个元素匹配成功则返回true
 *  allMatch:进行流中元素的全部匹配，只有都匹配才参会true
 *  noneMatch:当流中没有元素匹配则返回true
 *  reduce:积累操作，将流中所有元素最终积累成一个值
 */
public class StreanAPIDemo2 {
    public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();
        Random random = new Random();
        for(int i=0;i<3;i++){
            list.add(random.nextInt(100));

        }
        System.out.println(list);

       //Optional<Integer> o = list.stream().min((e1, e2)->e1-e2);
       Optional<Integer> o=list.stream().max((e1,e2)->e1-e2) ;
       int num=o.get();
       System.out.println(num);

       boolean anymatch= list.stream().anyMatch(e->e%2==0);
        System.out.println("是否含有偶数"+anymatch);

        boolean allMatch = list.stream().allMatch(e -> e > 50);
        System.out.println("所有元素都>50"+allMatch);

        boolean noneMztch = list.stream().noneMatch(e -> e % 2 == 0);
        System.out.println("都是奇数"+noneMztch);

      // o= list.stream().reduce((e1,e2)->e1+e2);
       o=list.stream().reduce(Integer::sum);
       num=o.get();
        System.out.println(num);


    }

}
